(PYTHON) Day - 20 Built-Ins

Reference

  • 문제 출처 - HackerRank
  • 파이썬 연습 - Practice - Python

개인적인 생각과 상상으로 작성한 내용들이 포함되어 있습니다
문제를 풀고 Discussion Tab을 참고하며 코드 스타일을 개선하려고 노력하고자 합니다


HackerRank


Built-Ins


Zipped!


문제 : 학생들의 성적 평균을 구하는 문제
입력 : 학생수 N, 과목수 X; (X 반복) 과목당 학생들의 성적 score;
출력 : 과목별 평균

mark sheet은 다음과 같다

Student ID → **\_1\_\_\_**2**\_**3**\_**4**\_**5**  
Subject 1 | 89 90 78 93 80
Subject 2 | 90 91 85 88 86
Subject 3 | 91 92 83 89 90.5
|************\_\_\_\_**************
Average 90 91 82 90 85.5

5 3
89 90 78 93 80
90 91 85 88 86
91 92 83 89 90.5

90.0
91.0
82.0
90.0
85.5

N, X = map(int, input().split())
subjects = []
for \_ in range(X):
subjects.append(map(float, input().split()))

for scores in zip(\*subjects):
print(sum(scores)/len(scores))

Input()


문제 : 입력받은 x와 k의 값이 식을 만족하는지 확인하는 문제
입력 : x, k; 다항식 P;
출력 : 다항식에 x의 값을 대입했을 때 k와 같으면 True, 아니면 False 출력

1 4
x3 + x2 + x + 1

True

x, k = map(int, input().split())
print(eval(input()) == k)

Python Evaluation


문제 : 단순히 eval() 함수를 사용하면 되는 문제
입력 : 실행할 표현식
출력 : 표현식의 결과값

print(2 + 3)

5

eval(input()) 

Athlete Sort


문제 : 데이터를 k번째 속성을 기준으로 정렬하는 문제
입력 : 데이터수 N, 속성수 M; (N 반복) 데이터 입력; 기준이 될 속성 K;
출력 : k번째 원소 기준으로 정렬된 결과값

example

5 3
10 2 5
7 1 0
9 9 9
1 23 12
6 5 9
1

7 1 0
10 2 5
6 5 9
9 9 9
1 23 12

정렬할 때, key를 잘 신경써주면 쉽게 풀리는 문제

N, M = map(int, input().split())
data = [input().split() for _ in range(N)]
k = int(input())

for d in sorted(data, key=lambda d: int(d[k])):
print(\*d)

Any or All


문제 : 입력받은 정수들이 모두 양수인지 확인하고 대칭수(palindromic number)가 있는지 확인하는 문제
입력 : 정수의 개수 N; 정수들;
출력 : True/False

5
12 9 61 5 14

True

commet

\_, numbers = input(), input().split()
print(all(map(lambda x: int(x)>=0, numbers)) and any(map(lambda x: x==x[::-1], numbers)))

# 혹은

\_, numbers = input(),input().split()
print(all(int(x)>0 for x in numbers) and any(x==x[::-1] for x in numbers))

ginortS


문제 : 조건에 맞게 문자열을 재정렬 하는 문제
입력 : 문자열 S
조건 : 소문자 > 대문자 > 숫자 순으로 정렬한다. 홀수가 짝수 앞에 온다.
출력 : 새로 정렬된 문자열

ginortS

Sorting1234

ginortS1324

def getKey(x):
if x.islower():
return(1,x)
elif x.isupper():
return(2,x)
elif x.isdigit() :
if int(x)%2==1:
return(3,x)
else :
return(4,x)

print(\*sorted(input(),key=getKey),sep='')